home *** CD-ROM | disk | FTP | other *** search
/ Chip: 2005 Utilities / CHIP Utilities 2005 / CHIP Utilities 2005.iso / dosapps / freedos / doc / swsubst / readme < prev    next >
Encoding:
Text File  |  2002-11-27  |  3.4 KB  |  61 lines

  1. What's sub-problems I coded within swsubst:
  2. + mkdir.c: mkdir -p {path}: makes the directory including path to it
  3. + subst: switchSubst(): handle CDS entries through DOS3..DOS6
  4. + cds.c: access to the List of List via inline assembly
  5. + drive.c: getDrvName(): convert physical drive number => driver name
  6. + drive.c: name2drv(): search the n'th drive driven by the driver with the name XXX
  7. + drive.c: searchLabel():search all physical drives for a drive labeled XXX (via findfirst())
  8. + drive.c: Drive(): strip a leading drive spec & return its (int) presence (all above && normal drive specs)
  9. + swsubst.c: new_int24(): disable critical errors by always returning FAIL to the system
  10. + swsubst.c: main(): compact multiple similar functionality within one program
  11. + set.c: drvSetting(): direct manipulating of the drive flags, set/reset flags; turn drive ON/OFF
  12.  
  13. Known Bugs:
  14. + The inline assembly in cds.c works; if the C code, I don't know.
  15. + Sometimes manipulating seems meaningless; the system locks up or
  16.   emits mystic errors. Well, they come when I tried something, what's
  17.   not possible with DOS's standard tools, but what should work by all
  18.   documentation I have. (I never had a system crash with data lost.)
  19. + The part of main(), where I start the switchSubst(), is somewhat
  20.   mystic. That's because that was the place where everything begun!
  21. + To turn a drive OFF is relativly simple; but re-enabling is aweful, because
  22.   there is nowhere the information, what SHOULD be on this drive. It works
  23.   OK for unused entries, local HD's und FD's; sometimes for device
  24.   driven drives; but seldom for CD-ROMs (networked drives).
  25. + Works only on MS-DOS like CDS. But does not check, if it's running on
  26.   MS-DOS. (DR-DOS has a very different CDS.)
  27. + The program does very little checking for valid operations; therefore,
  28.   play around a bit, before you try to do serious things with non-DOS-
  29.   standard functions.
  30. + Becæuse I enabled to use logical & physical paths, sometimes the same
  31.   path is interpreted both physically and logically. That *can* be useful.
  32.   But normally this results rubish.
  33. + The DOS-standard emulating entities of swsubst, SUBST and JOIN, have the
  34.   same command line as DOS's have. But they differ in the following points:
  35.       ++ The specified path will be make'ed, including the full path to it,
  36.          e.g. "SUBST c: d:/blah/humpf"
  37.          creates the path "d:\blah\humpf", regardless if d:\blah exists.
  38.       ++ You are allowed to break off relations on the fly, that means:
  39.          an already SUBST'ed can be re-SUBST'ed or re-JOIN'ed without
  40.          further note/warning.
  41.       ++ You are allowed to process a drive with itself,
  42.          e.g.: "JOIN a: a:\blah"
  43.       ++ The table dump is different, swsubst prints "X: => Y:\PATH" instead
  44.          of "X: is joined to Y:\PATH".
  45.       ++ You cannot rename the executables SUBST and JOIN.
  46.       ++ It won't test the DOS version, unless it's necessary for adjusting
  47.          different data structure sizes.
  48.  
  49.  
  50.  
  51. What I'm still looking for:
  52. + How to trick a networked drive (e.g. CD-ROM) of it's drive letter,
  53.   e.g. for swapping.
  54. + How to flush DOS internal BUFFERs in that way, that a) non-Written 
  55.   data is written (flush dirty BUFFERs); and b) mark them unused.
  56.   That's *maybe* one problem, because DOS's BUFFERs may contain data
  57.   about a drive, which is now somewhere else & was replaced by another.
  58.   I trecked DOS a bit, but couldn't found something, what's look like
  59.   that functionality.
  60. + What's the HIDDEN flag for?
  61.